SpringBoot MyBatis 实现分页查询数据【SpringBoot系列4】 您所在的位置:网站首页 springboot 分页查询 SpringBoot MyBatis 实现分页查询数据【SpringBoot系列4】

SpringBoot MyBatis 实现分页查询数据【SpringBoot系列4】

2023-03-20 14:49| 来源: 网络整理| 查看: 265

SpringCloud 大型系列课程正在制作中,欢迎大家关注与提意见。

程序员每天的CV 与 板砖,也要知其所以然,本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCloud 微服务系列项目开发.

1 项目准备

SpringBoot项目创建【SpringBoot系列1】

SpringBoot 集成 MyBatis 框架 【SpringBoot系列2】

SpringBoot 集成 Druid 数据源【SpringBoot系列3

2 分页插件

pagehelper是一个mybatis的分页插件,首先在 pom.xml 文件中添加分页插件依赖包。

com.github.pagehelper pagehelper-spring-boot-starter 1.4.6

然后在 application.yml 配置文件中添加分页插件有关的配置。

pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql3 PageResult 与 PageRequest 、PageUtils

定义分页请求体,主要是用于当前请求的是第几页数据以及每页数据加载多少条

import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; /** * 分页请求 */ @Data @ToString @AllArgsConstructor @NoArgsConstructor public class PageRequest { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; }

定义分页返回结果集 PageResult

import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import java.util.List; /** * 分页返回结果 */ @Data @ToString @AllArgsConstructor @NoArgsConstructor public class PageResult { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; /** * 记录总数 */ private long totalSize; /** * 页码总数 */ private int totalPages; /** * 数据模型 */ private List content; }

PageUtils 将分页信息封装到统一的接口

import com.github.pagehelper.PageInfo; public class PageUtils { public static PageResult getPageResult(PageRequest pageRequest, PageInfo pageInfo) { PageResult pageResult = new PageResult(); pageResult.setPageNum(pageInfo.getPageNum()); pageResult.setPageSize(pageInfo.getPageSize()); pageResult.setTotalSize(pageInfo.getTotal()); pageResult.setTotalPages(pageInfo.getPages()); pageResult.setContent(pageInfo.getList()); return pageResult; } }4 实现分页请求

首先是 UserController 中

@Api(tags="用户模块") @RestController @RequestMapping("user") public class UserController { @Resource private UserService userService; @PostMapping(value="/findPage") @ApiOperation(value = "分页查询") public Object findPage(@RequestBody PageRequest pageQuery) { return userService.findPage(pageQuery); } }

UserService.java

public interface UserService { PageResult findPage(PageRequest pageRequest); }

UserServiceImpl.java

@Service public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public PageResult findPage(PageRequest pageRequest) { return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest)); } /** * 调用分页插件完成分页 * @return */ private PageInfo getPageInfo(PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); PageHelper.startPage(pageNum, pageSize); List userInfoList = userMapper.selectPage(); return new PageInfo(userInfoList); } }

UserMapper.java

public interface UserMapper { List selectList(); /** * 分页查询用户 * @return */ List selectPage(); }

UserMapper.xml

select id, user_name, user_age, create_time from t_user select id, user_name, user_age, create_time from t_user

然后在postman中执行请求,已可以实现分页请求

项目源码在这里 :早起的年轻人/SpringBootStudy

有兴趣可以关注一下公众号:biglead



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有